'''
1、查看
2、存钱
3、取钱
4、退出
5、交互
'''
#用户信息数据集
user_info=[
    {'usercard':'01','pw':'123456'},
    {'usercard':'02','pw':'654321'}
]
#账户信息列表
user_list=[
    {'usercard':'01','name':'aa','account':20},
    {'usercard':'02','name':'bb','account':10}
]



#展示用户信息
def show_user_info(usercard):

    print('|{0:<10}|{1:<10}|{2:<10}|{3:<10}|'.format('userid','usercard','name','account'))
    print("-"*40)
    for i,user_dict in enumerate(user_list):
        if user_dict['usercard']==usercard:
            print('|{0:<10}|{1:<10}|{2:<10}|{3:<10}|'.format(i+1,user_dict['usercard'], user_dict['name'], user_dict['account']))
        else:
            continue


#存钱
def add_user_account(usercard,account):
    if int(account)>0:
        for i,user_dict in enumerate(user_list):
            if user_dict['usercard']==usercard:
                user_dict['account']=user_dict['account']+int(account)
    else:
        print('输入有误')
#取钱
def del_user_account(usercard,account):
    if int(account)>0:
        for i,user_dict in enumerate(user_list):
            if user_dict['usercard']==usercard:
                if user_dict['account']-int(account)>=0:
                    user_dict['account']=user_dict['account']-int(account)
                else:
                    print("余额不足，请重新输入金额")
            else:
                continue
    else:
        print("输入有误")

#退出
def logout_user():
     pass

while True:
    print("="*12,'账户管理系统',"="*12)
    usercard=input("请输入用户卡号(退出系统请按4):")
    if usercard=='4':
        break
    pw=input("请输入用户密码(退出系统请按4):")
    if pw=='4':
        break
    for i,user_dict in enumerate(user_info):
        #判断输入的卡号和密码是否是注册过的
        if user_dict['usercard']==usercard and user_dict['pw']==pw:
            while True:
                print('{:<16}{:<20}'.format('1、查看账户信息','2、存款'))
                print('{:<20}{:<20}'.format( '3、取款', '4、退出'))
                print("="*40)
                key=input("请输入对应选择：")
                if key=='1':
                    print("="*12,'账户信息',"="*12)
                    show_user_info(usercard)
                    input('按回车键继续')

                elif key=='2':
                    print("=" * 12, '存款', "=" * 12)
                    account=input('请输入存款金额：')
                    #判断输入的是否为数字
                    if account.isdigit():
                        add_user_account(usercard,account)
                        show_user_info(usercard)
                        input('按回车键继续')
                    else:
                        print("输入有误")

                elif key=='3':
                    print("=" * 12, '取款', "=" * 12)
                    account=input('请输入要取出的金额')
                    if account.isdigit():
                        del_user_account(usercard,account)
                        show_user_info(usercard)
                        input('按回车键继续')
                    else:
                        print("输入有误")
                elif key=='4':
                    logout_user()
                    print("=" * 12, '再见', "=" * 12)
                    break
        #当达到用户信息列表长度还未发现正确用户则提示输入有误
        elif i+1==len(user_info):
            key=input("输入的卡号或密码错误，继续请按回车键，退出请按4")
            if key=='4':
                print("=" * 12, '再见', "=" * 12)
                break


